이벤트 리스너

✒️ 2025-05-23 15:18 내용 수정


참고 자료 : TCPSchool js eventlistener register

이벤트가 발생 했을 때 그 처리를 담당하는 함수

Event Listener 호출


1. HTML 속성에 Event Listener 추가

<body>
	<태그명 on이벤트객체="함수()">content</태그명>

	<script>
		function 함수() {
			/* 실행할 내용 */
		}
	</script>
</body>
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>Insert title here</title>
	</head>
	<body>
		<button onclick="clickFunction()">버튼1</button>
		
		<p>버튼1을 누르면 색이 변합니다.</p>
		<p>이 단락은 변하지 않습니다.</p>
		
		<script>
			let text = document.getElementsByTagName('p')[0]; // 첫번째 p 태그만 가져오기
			
			function clickFunction() {
				text.style.cssText = 'color:red; font-weight:bold;';
			}
		</script>
	</body>
</html>

이벤트 1.png

이벤트 2.png


2. JavaScript에서 property를 등록

<body>
	<태그명 class="클래스명">content</태그명>

	<script>
		let test = document.getElementByClassName('.클래스명');
		
		test.on이벤트객체 = function() {
			/* 실행할 내용 */
		}
	</script>
</body>
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>Insert title here</title>
	</head>
	<body>
		<button class="bt">버튼2</button>
		
		<script>
			let bt = document.querySelector('.bt');
			
			bt.onclick = function() {
				alert("먼저 입력한 함수가 적용되지 않습니다.");
			}
			
			bt.onclick = function() {
				alert("버튼2를 눌렀습니다.");
			}
		</script>
	</body>
</html>

이벤트 3.png


3. DOM 요소에 Event Listener 추가

대상객체.addEventListener(이벤트이름, 이벤트리스너, 이벤트전파방식);
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>Insert title here</title>
	</head>
	<body>
		
		<button id="bt1">버튼1</button>
		<input type="button" value="버튼2" id="bt2"></input>
		<input type="button" value="버튼3" id="bt3"></input>
		
		<script>
			document.getElementById('bt1').addEventListener('contextmenu', function() {
				alert('버튼1을 우클릭 했습니다.');
			})
			
			let btn2 = document.querySelector('#bt2');
			let btn3 = document.querySelector('#bt3');
			
			function bt_listener(event) {
				switch(event.target.id) {
					case 'bt2':
					alert('버튼2를 눌렀습니다.');
					break;
					case 'bt3':
					alert('버튼3을 눌렀습니다.');
					break;
				}
			}
			
			btn2.addEventListener('click', bt_listener);
			btn3.addEventListener('click', bt_listener);
			
		</script>
	</body>
</html>

이벤트 4.png
이벤트 5.png
이벤트 6.png


Event Listener 제거

대상객체.removeEventListener(이벤트이름, 이벤트리스너);